local activityId = ARGV[1]

local userId = ARGV[2]

local stockKey = 'activity:id:'.. activityId

local joinKey = 'activity:join:'.. activityId

-- 判断库存是否充足
if(tonumber(redis.call('get',stockKey))<=0) then
    return 1
end

-- 判断用户是否下单 sismember 可以判断用户是否存在
if(redis.call('sismember',joinKey,userId)==1)then
    return 2
    end
-- 扣库存
redis.call('incrby',stockKey,-1)
--下单（保存用户）
redis.call('sadd',joinKey,userId)

-- 同步过期时间：获取 stockKey 的 TTL，并应用到 joinKey
local ttl = redis.call('ttl', stockKey)
if ttl > 0 then
    redis.call('expire', joinKey, ttl)
end

return 0

